Contemporary computer servers now provide a wide variety of data services in order to fulfill requests from other computer systems on behalf of various clients. In one scenario, a server may be configured to provide data items representing information of interest, such as stock prices or weather forecasts. In another scenario, a server may perform various calculations and data manipulation at the request of other computer systems; for example, a high-performance, massively parallel supercomputer may evaluate mathematical models on behalf of client computer systems, such as multivariate linear algebra problems and molecular biology simulations. In a third scenario, a server may manage access to a physical component, such as a robot or a factory machine, and may accept requests for manipulating the physical component provided by users of other computer systems.
These scenarios involve the communication of data items, such as computer-executable instructions, between a server and at least one client computer system. The server is often configured to communicate with such clients by offering one or more services, where each service offers one or more service functions. Clients may then utilize the services by invoking the one or more service functions, which may involve providing parameters for use in the service functions. The server may respond to the invocation by (e.g.) validating the service function parameters, performing the operations involved in fulfilling the invoked service function, and returning one or more result data items produced by the performance of the service function. For example, a client may request a share price from a stock market database, and may provide a stock symbol identifying a publicly traded company. The server may respond by verifying that the provided stock symbol is valid and that the requested share price is available, by retrieving the share price (e.g., from a stock market database), and by notifying the client of the share price.